#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

//子进退出，父进程还在运行，但是父进程没有读取到子进程的pcb，子进程就处于z状态
//int main()
//{
//  pid_t id = fork();
//
//  if(id < 0) return 1;
//  else if(id == 0)
//  {
//    //子进程
//       
//    int cnt = 5;
//    while(cnt)
//    {
//      printf("I am a child,run times:%d\n ",cnt--);
//      sleep(1);
//    }
//      printf("I am a child,dead!:%d\n ",cnt--);
//      exit(2);
//  }
//   else{
//    //父进程
//    
//    while(1)
//    {
//      printf("I am a parent,running any time!\n");
//      sleep(1);
//    }
//  }
//
//}

//父进程退出，子进程一直运行，父进程会不会一直处于僵尸状态呢?
//答案不是，父进程不会处于僵尸状态，而是被bash回收了
//而子进程呢？子进程的父进程直接退出了，子进程要被"领养",变成了孤儿进程
int main()
{
  pid_t id = fork();

  if(id < 0) return 1;
  else if(id == 0)
  {
    //子进程
       
    while(1)
    {
      printf("I am a child,…… \n ");
      sleep(1);
    }
      exit(2);
  }
   else{
    //父进程
    int cnt  = 5;
    while(cnt)
    {
      printf("I am a child,run times:%d\n ",cnt--);
      sleep(1);
    }
     printf("I am a child,run times:%d\n",cnt--);
  }

}
